iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0

從 Day3 到 Day7,我們花了五天的時間大略地過完了設備和用戶數據庫 (device inventory database 和 user/group database)、非特權網路 (Unprivileged network and RADIUS) 和建立在 Google Front-end (GFE) 之上,負責執行驗證、授權和分流的 Access Proxy。

接下來幾天,我們來講剩下的也是授權過程中最重要的部分——Access Control,組件包含 Trust Inference、Access Control Engine、Pipeline,和 Certificate Issuer(但論文裡沒提到這個組件,所以本文不寫它)。

https://ithelp.ithome.com.tw/upload/images/20230923/20145329z1Am3nExz2.png
圖 1. Access Control 架構概覽 01 (source: https://www.beyondcorp.com/)

https://ithelp.ithome.com.tw/upload/images/20230923/20145329oHsleklPmw.png
圖 2. Access Control 架構概覽 02 (source: How Google did it: "Design to Deployment at Google")

一樣,我們從最基本的開始學習,從知道它是什麼開始 (What),明天再去看實踐細節 (How)。

本篇內容出自論文,詳見出處:

實現基於庫存的訪問控制 (Inventory-Based Access Control)

設備和用户的信任等級推斷 (Trust Inference for Devices and Users)

https://ithelp.ithome.com.tw/upload/images/20230923/20145329aF9Sjm8Keh.png
圖 3. Trust Inference (source: https://www.beyondcorp.com/)

Trust Inference 是一個負責動態分析並分配信任等級給用戶或設備的元件。

要訪問指定資源,用戶或設備會被分配到一個信任等級 (Trust Tier)。其信任等級需要大於等於指定資源的最小信任需求才能順利訪問。

Trust Inference 便是負責動態分析並分配信任等級給用戶或設備的元件。

那他是根據什麼來爲用戶或設備分配信任等級的呢?Trust Inference 是根據 Device Inventory Service 中記錄的用戶或設備數據來指派信任等級。

作爲核心中的核心,這裡要插隊講一下什麼是 Device Inventory Service。根據 BeyondCorp 官網給出的定義:

Device Inventory Service is a system that continuously collects, processes, and publishes changes about the state of known devices. Device Inventory Service 是一個系統,負責持續收集、處理並發佈已知設備的狀態變更。

如果把圖 1. 和圖 2. 拿來一起比較觀察,那麼可以理解爲 Device Inventory Service 就是 pipeline 和 database 的集成。它會做的事情是負責從各種各樣的來源系統(比如 Active Directory、Configuration Management Systems、Corporate Asset Management 、網絡基礎設施如 ARP tables 等)收集信息,所收集的信息包括設備固有的信息(網卡、設備號等)以及設備上的運行信息(操作系統版本、補丁更新情況等)。

下圖是 Device Inventory Service 的架構圖:
https://ithelp.ithome.com.tw/upload/images/20230923/201453293STHHCQyu7.png
圖 4. Device Inventory Service (source: How Google did it: "Design to Deployment at Google")

回到 Trust Inference。Trust Inference 是根據 Device Inventory Service 中記錄的用戶或設備數據來指派信任等級。例如,OS 未更新的設備可能會被降低信任等級。特定類別的設備,例如特定型號的手機或平板電腦,可能會被分配到特定的信任等級。從新位置訪問應用程序的用戶可能會被分配到不同的信任等級。

信任等級會作為 Access Control Engine 的輸入的一部分被使用。

訪問控制引擎(Access Control Engine)

https://ithelp.ithome.com.tw/upload/images/20230923/20145329ydbPBEzkC7.png
圖 5. Access Control Engine (source: https://www.beyondcorp.com/)

Access Proxy 中的 Access Control Engine 負責根據每個請求為企業應用程序提供服務級別的授權。

授權決策會對用戶、用戶所屬的群組、設備證書以及設備元數據提出斷言。必要時,Access Control Engine 還可以執行基於位置的訪問控制。用戶和設備的信任等級也包含在此授權決策中。舉例來說,可以限制只有使用工程設備的全職工程師才可以訪問 Google bug tracking system。而對於財務應用程序,可以限制只有使用非工程設備的全職和兼職員工、並且在財務中心組中才具有財務訪問權限。

此外,Access Control Engine 還可以限制應用程序的細粒度訪問政策。例如,讀取 Google bug tracking system 所需要的權限可能較寫入的權限寬鬆。

Access Control Engine 的主要職責是將來自 Device Inventory Service 的設備元數據、用戶/群組信息、用戶訪問上下文(如地理位置)以及信任等級作爲輸入,做出允許或拒絕訪問的決策,並將這一決策傳達給 Access Proxy。

進入訪問控制引擎的管道(Pipeline into the Access Control Engine)

https://ithelp.ithome.com.tw/upload/images/20230923/20145329hsBhTpMSlf.png
圖 6. Pipeline (source: https://www.beyondcorp.com/)

Access Control Engine 不斷地接收由運行中的 pipeline 提供的信息,該 pipeline 會動態地提取有助於制定授權決策的信息,包括憑證白名單、用戶或設備的信任等級、用戶或設備元數據等。


至此,我們簡單地認識了 Access Control 中各組件是幹什麼的。但是具體是怎麼做到的呢?

明天!我們要繼續學習 Access Control ,聚焦於 How does it work,探討具體的 data processing pipeline。我們將從 Device Inventory Service 記錄了哪種數據開始,從用戶/設備的數據整合、 觸發 Trust Inference 判斷用戶/設備的信任等級,到作爲 Access Control Engine 的輸入。
https://ithelp.ithome.com.tw/upload/images/20230923/20145329NOb5Z7SEGC.png
圖 7. Access Control flow 01 (source: https://www.beyondcorp.com/)

https://ithelp.ithome.com.tw/upload/images/20230923/20145329gS8x04PdRS.png
圖 8. Access Control flow 02 (source: How Google did it: "Design to Deployment at Google")

明天見!

BTW 這幾天天氣真好,月明星稀的。今天週六公司補班,補的哪天我不知道,但 WFH 好快樂啊就是說哈哈哈哈

拜拜!


上一篇
Day7 架構元件—Access Proxy(下)
下一篇
Day9 架構元件—Access Control(下)
系列文
Google BeyondCorp 零信任模型:從概念到實踐30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言